1. The Field of the Invention
The present invention relates to the protection of computer data, and more particularly to a system and method for taking a snapshot copy of only certain sectors on one or more mass storage systems.
2. Background and Related Art
Computers have become an integral part of most business operations. In some instances, computers have become so vital that when they cease to function, business operations cannot be conducted. Banks, insurance companies, brokerage firms, financial service providers, and a variety of other businesses rely on computer networks to store, manipulate, and display information that is constantly subject to change. The success or failure of a transaction may turn on the availability of information which is both accurate and current The credibility of the service provider, or its very existence, may depend on the reliability of the information maintained on a computer network. Businesses worldwide recognize the commercial value of their data and are seeking reliable, cost-effective ways to protect the information stored on their computer networks by reliably backing up data.
Often, files such as swap files, printer buffers, free sector tables and “temp” files are backed up even though those files are typically not desired to be backed up. Backing up of unwanted files causes wasted processing cycles, communication bandwidth and backup memory capacity. To avoid backing up unwanted information, systems have been developed whereby individual files may be selected for backup. These systems operate (1) by adding a software layer to intercept all file system commands and (2) by defining two types of files: tracked and untracked. For tracked files, the system provides both a backup version and an update version of the file. The backup version is the file as it existed at the time a backup is initiated; the update version is a current version of the file, including any modifications made after a backup has been initiated. For untracked files, only a current (or update) version is available. Essentially, the system functions as if a software layer were present to intercept file system commands.
The software layer provides a backup and update version of a file by storing file modifications such that they do not overwrite the original file data as it existed when a backup is initiated. By intercepting all file system commands, the system can provide the appropriate version of the file to a program requesting access. For example, when the backup program makes a read request, the software layer provides the backup version of the data requested. Other programs making read requests receive the update version of the file data.
The software layer intercepting all file system commands is an adequate solution when only a few files are tracked. However, the solution proves unworkable as the number of tracked files increases. The problem is that the software layer essentially performs the work of a file system. For tracked files, each file operation performed by operating system is also performed, in one form or another, by the software layer. With an increasing number of files, the software layer becomes overloaded and degrades performance such that the system is unusable.
The software interception layer also overlooks the relationships that may exist between files. As described above, it is not enough that the data stored within a file is consistent. The data stored in one file is likely related to data stored in one or more other files. The prior art's software layer is only able to insure that a file is accessible during a backup process. It makes no provision for insuring a logically consistent set of data across all files comprising a backup operation. Therefore, backups made with a software layer of this type may be less beneficial due to inconsistencies in the stored data.
It would, therefore, represent an advancement in the art to have an efficient system for backing up only data that is desired to be backed up while maintaining relationships between files.